<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>L2LB: Referência ao ficheiro list.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Gerado por Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Página&nbsp;principal</span></a></li>
      <li><a href="annotated.html"><span>Estruturas&nbsp;de&nbsp;dados</span></a></li>
      <li class="current"><a href="files.html"><span>Ficheiros</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Referência ao ficheiro list.h</h1>
<p>
<a href="list_8h-source.html">Ir para o código fonte deste ficheiro.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Estruturas de Dados</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlist__head.html">list_head</a></td></tr>

<tr><td colspan="2"><br><h2>Macros</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#4642d4b7df28478bb762fe43c85b5c63">LIST_HEAD_INIT</a>(name)&nbsp;&nbsp;&nbsp;{ &amp;(name), &amp;(name) }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#42f0e72af970a790b60a740af8c9ecd0">LIST_HEAD</a>(name)&nbsp;&nbsp;&nbsp;struct <a class="el" href="structlist__head.html">list_head</a> name = LIST_HEAD_INIT(name)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#0ffe9d28c36d7b018a9cfae33bae45c0">INIT_LIST_HEAD</a>(ptr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#26c976b7f654e70df318c1843e5094de">list_entry</a>(ptr, type, member)&nbsp;&nbsp;&nbsp;((type *)((char *)(ptr)-(unsigned long)(&amp;((type *)0)-&gt;member)))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_entry - get the struct for this entry : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> pointer.  <a href="#26c976b7f654e70df318c1843e5094de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#b8b24e6660ab3760c923e4b4db3fa502">list_for_each</a>(pos, head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_for_each - iterate over a list : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter.  <a href="#b8b24e6660ab3760c923e4b4db3fa502"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#19fc06b83f3502a83ce566b8887e6aec">list_for_each_prev</a>(pos, head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_for_each_prev - iterate over a list backwards : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter.  <a href="#19fc06b83f3502a83ce566b8887e6aec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#9e4b9328744994b9d3878f5dad75c09f">list_for_each_safe</a>(pos, n, head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_for_each_safe - iterate over a list safe against removal of list entry : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter.  <a href="#9e4b9328744994b9d3878f5dad75c09f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#9b782fefb5ab71ce9762182e45a615e1">list_for_each_entry</a>(pos, head, member)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_for_each_entry - iterate over list of given type : the type * to use as a loop counter.  <a href="#9b782fefb5ab71ce9762182e45a615e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#c3f72d6bd5144c7970824813810d2da1">list_for_each_entry_safe</a>(pos, n, head, member)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_for_each_entry_safe - iterate over list of given type safe against removal of list entry : the type * to use as a loop counter.  <a href="#c3f72d6bd5144c7970824813810d2da1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Funções</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#8a28f150a191624bf6923a48cdace7e3">__list_add</a> (struct <a class="el" href="structlist__head.html">list_head</a> *new, struct <a class="el" href="structlist__head.html">list_head</a> *prev, struct <a class="el" href="structlist__head.html">list_head</a> *next)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#0373c4b3c8ce51a451a569ad978b32e1">list_add</a> (struct <a class="el" href="structlist__head.html">list_head</a> *new, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_add - add a new entry : new entry to be added : list head to add it after  <a href="#0373c4b3c8ce51a451a569ad978b32e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#588bec046f1e9797b33a5c5ab250f447">list_add_tail</a> (struct <a class="el" href="structlist__head.html">list_head</a> *new, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_add_tail - add a new entry : new entry to be added : list head to add it before  <a href="#588bec046f1e9797b33a5c5ab250f447"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#24b474717d65a296695e8b79b4adefda">__list_del</a> (struct <a class="el" href="structlist__head.html">list_head</a> *prev, struct <a class="el" href="structlist__head.html">list_head</a> *next)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#b1708206f0f7e0a56550b35372203ba5">list_del</a> (struct <a class="el" href="structlist__head.html">list_head</a> *entry)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_del - deletes entry from list.  <a href="#b1708206f0f7e0a56550b35372203ba5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#e1cde0f50b85945cfff23be4fc1586f4">list_del_init</a> (struct <a class="el" href="structlist__head.html">list_head</a> *entry)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_del_init - deletes entry from list and reinitialize it.  <a href="#e1cde0f50b85945cfff23be4fc1586f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#ee8df43e41969c2272acfd6ed6e75d4c">list_move</a> (struct <a class="el" href="structlist__head.html">list_head</a> *list, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_move - delete from one list and add as another's head : the entry to move : the head that will precede our entry  <a href="#ee8df43e41969c2272acfd6ed6e75d4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#1c5ac6a6b04a03f5782e818daacf96e9">list_move_tail</a> (struct <a class="el" href="structlist__head.html">list_head</a> *list, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_move_tail - delete from one list and add as another's tail : the entry to move : the head that will follow our entry  <a href="#1c5ac6a6b04a03f5782e818daacf96e9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#0fce12be81e8f2677b3a272fee1652ac">list_empty</a> (struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_empty - tests whether a list is empty : the list to test.  <a href="#0fce12be81e8f2677b3a272fee1652ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#25979c80a2d71dd02ada121a46c71a59">__list_splice</a> (struct <a class="el" href="structlist__head.html">list_head</a> *list, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#2c4399cfbde5e5d5eddf2e13c97bd5d5">list_splice</a> (struct <a class="el" href="structlist__head.html">list_head</a> *list, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_splice - join two lists : the new list to add.  <a href="#2c4399cfbde5e5d5eddf2e13c97bd5d5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="list_8h.html#948b15519bb72e3d42f3e56975580d30">list_splice_init</a> (struct <a class="el" href="structlist__head.html">list_head</a> *list, struct <a class="el" href="structlist__head.html">list_head</a> *head)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">list_splice_init - join two lists and reinitialise the emptied list.  <a href="#948b15519bb72e3d42f3e56975580d30"></a><br></td></tr>
</table>
<hr><h2>Documentação das macros</h2>
<a class="anchor" name="0ffe9d28c36d7b018a9cfae33bae45c0"></a><!-- doxytag: member="list.h::INIT_LIST_HEAD" ref="0ffe9d28c36d7b018a9cfae33bae45c0" args="(ptr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INIT_LIST_HEAD          </td>
          <td>(</td>
          <td class="paramtype">ptr&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
        (ptr)-&gt;next = (ptr); (ptr)-&gt;prev = (ptr); \
} <span class="keywordflow">while</span> (0)
</pre></div>
<p>Definido na linha <a class="el" href="list_8h-source.html#l00030">30</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referenciado por <a class="el" href="hash__table_8h-source.html#l00104">hash_entry_init()</a>, <a class="el" href="list_8h-source.html#l00104">list_del_init()</a> e <a class="el" href="list_8h-source.html#l00173">list_splice_init()</a>.</p>

</div>
</div><p>
<a class="anchor" name="26c976b7f654e70df318c1843e5094de"></a><!-- doxytag: member="list.h::list_entry" ref="26c976b7f654e70df318c1843e5094de" args="(ptr, type, member)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_entry          </td>
          <td>(</td>
          <td class="paramtype">ptr,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">type,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">member&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;((type *)((char *)(ptr)-(unsigned long)(&amp;((type *)0)-&gt;member)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_entry - get the struct for this entry : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> pointer. 
<p>
: the type of the struct this is embedded in. : the name of the list_struct within the struct. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00188">188</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referenciado por <a class="el" href="hash__table_8h-source.html#l00213">hash_table_lookup_key()</a> e <a class="el" href="hash__table_8h-source.html#l00241">hash_table_lookup_key_safe()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b8b24e6660ab3760c923e4b4db3fa502"></a><!-- doxytag: member="list.h::list_for_each" ref="b8b24e6660ab3760c923e4b4db3fa502" args="(pos, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_for_each          </td>
          <td>(</td>
          <td class="paramtype">pos,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (pos = (head)-&gt;next; pos != (head); \
                pos = pos-&gt;next)
</pre></div>list_for_each - iterate over a list : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter. 
<p>
: the head for your list. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00196">196</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referenciado por <a class="el" href="hash__table_8h-source.html#l00213">hash_table_lookup_key()</a> e <a class="el" href="hash__table_8h-source.html#l00241">hash_table_lookup_key_safe()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9b782fefb5ab71ce9762182e45a615e1"></a><!-- doxytag: member="list.h::list_for_each_entry" ref="9b782fefb5ab71ce9762182e45a615e1" args="(pos, head, member)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_for_each_entry          </td>
          <td>(</td>
          <td class="paramtype">pos,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">member&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (pos = <a class="code" href="list_8h.html#26c976b7f654e70df318c1843e5094de" title="list_entry - get the struct for this entry : the &amp;amp;struct list_head pointer.">list_entry</a>((head)-&gt;next, typeof(*pos), member);      \
             &amp;pos-&gt;member != (head);                                    \
             pos = <a class="code" href="list_8h.html#26c976b7f654e70df318c1843e5094de" title="list_entry - get the struct for this entry : the &amp;amp;struct list_head pointer.">list_entry</a>(pos-&gt;member.next, typeof(*pos), member))
</pre></div>list_for_each_entry - iterate over list of given type : the type * to use as a loop counter. 
<p>
: the head for your list. : the name of the list_struct within the struct. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00224">224</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c3f72d6bd5144c7970824813810d2da1"></a><!-- doxytag: member="list.h::list_for_each_entry_safe" ref="c3f72d6bd5144c7970824813810d2da1" args="(pos, n, head, member)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_for_each_entry_safe          </td>
          <td>(</td>
          <td class="paramtype">pos,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">n,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">member&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (pos = <a class="code" href="list_8h.html#26c976b7f654e70df318c1843e5094de" title="list_entry - get the struct for this entry : the &amp;amp;struct list_head pointer.">list_entry</a>((head)-&gt;next, typeof(*pos), member),      \
                n = <a class="code" href="list_8h.html#26c976b7f654e70df318c1843e5094de" title="list_entry - get the struct for this entry : the &amp;amp;struct list_head pointer.">list_entry</a>(pos-&gt;member.next, typeof(*pos), member); \
             &amp;pos-&gt;member != (head);                                    \
             pos = n, n = <a class="code" href="list_8h.html#26c976b7f654e70df318c1843e5094de" title="list_entry - get the struct for this entry : the &amp;amp;struct list_head pointer.">list_entry</a>(n-&gt;member.next, typeof(*n), member))
</pre></div>list_for_each_entry_safe - iterate over list of given type safe against removal of list entry : the type * to use as a loop counter. 
<p>
<br>
: another type * to use as temporary storage : the head for your list. : the name of the list_struct within the struct. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00236">236</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="19fc06b83f3502a83ce566b8887e6aec"></a><!-- doxytag: member="list.h::list_for_each_prev" ref="19fc06b83f3502a83ce566b8887e6aec" args="(pos, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_for_each_prev          </td>
          <td>(</td>
          <td class="paramtype">pos,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (pos = (head)-&gt;prev; pos != (head); \
                pos = pos-&gt;prev)
</pre></div>list_for_each_prev - iterate over a list backwards : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter. 
<p>
: the head for your list. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00204">204</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="9e4b9328744994b9d3878f5dad75c09f"></a><!-- doxytag: member="list.h::list_for_each_safe" ref="9e4b9328744994b9d3878f5dad75c09f" args="(pos, n, head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define list_for_each_safe          </td>
          <td>(</td>
          <td class="paramtype">pos,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">n,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">head&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Valor:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">for</span> (pos = (head)-&gt;next, n = pos-&gt;next; pos != (head); \
                pos = n, n = pos-&gt;next)
</pre></div>list_for_each_safe - iterate over a list safe against removal of list entry : the &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as a loop counter. 
<p>
<br>
: another &amp;struct <a class="el" href="structlist__head.html">list_head</a> to use as temporary storage : the head for your list. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00214">214</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="42f0e72af970a790b60a740af8c9ecd0"></a><!-- doxytag: member="list.h::LIST_HEAD" ref="42f0e72af970a790b60a740af8c9ecd0" args="(name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LIST_HEAD          </td>
          <td>(</td>
          <td class="paramtype">name&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;struct <a class="el" href="structlist__head.html">list_head</a> name = LIST_HEAD_INIT(name)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00027">27</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="4642d4b7df28478bb762fe43c85b5c63"></a><!-- doxytag: member="list.h::LIST_HEAD_INIT" ref="4642d4b7df28478bb762fe43c85b5c63" args="(name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LIST_HEAD_INIT          </td>
          <td>(</td>
          <td class="paramtype">name&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>&nbsp;&nbsp;&nbsp;{ &amp;(name), &amp;(name) }</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00025">25</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

</div>
</div><p>
<hr><h2>Documentação das funções</h2>
<a class="anchor" name="8a28f150a191624bf6923a48cdace7e3"></a><!-- doxytag: member="list.h::__list_add" ref="8a28f150a191624bf6923a48cdace7e3" args="(struct list_head *new, struct list_head *prev, struct list_head *next)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void __list_add           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>new</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>prev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>next</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00040">40</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

<p>Referenciado por <a class="el" href="list_8h-source.html#l00057">list_add()</a> e <a class="el" href="list_8h-source.html#l00070">list_add_tail()</a>.</p>

</div>
</div><p>
<a class="anchor" name="24b474717d65a296695e8b79b4adefda"></a><!-- doxytag: member="list.h::__list_del" ref="24b474717d65a296695e8b79b4adefda" args="(struct list_head *prev, struct list_head *next)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void __list_del           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>prev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>next</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00082">82</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

<p>Referenciado por <a class="el" href="list_8h-source.html#l00093">list_del()</a>, <a class="el" href="list_8h-source.html#l00104">list_del_init()</a>, <a class="el" href="list_8h-source.html#l00115">list_move()</a> e <a class="el" href="list_8h-source.html#l00126">list_move_tail()</a>.</p>

</div>
</div><p>
<a class="anchor" name="25979c80a2d71dd02ada121a46c71a59"></a><!-- doxytag: member="list.h::__list_splice" ref="25979c80a2d71dd02ada121a46c71a59" args="(struct list_head *list, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void __list_splice           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00142">142</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

<p>Referenciado por <a class="el" href="list_8h-source.html#l00160">list_splice()</a> e <a class="el" href="list_8h-source.html#l00173">list_splice_init()</a>.</p>

</div>
</div><p>
<a class="anchor" name="0373c4b3c8ce51a451a569ad978b32e1"></a><!-- doxytag: member="list.h::list_add" ref="0373c4b3c8ce51a451a569ad978b32e1" args="(struct list_head *new, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_add           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>new</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_add - add a new entry : new entry to be added : list head to add it after 
<p>
Insert a new entry after the specified head. This is good for implementing stacks. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00057">57</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00040">__list_add()</a> e <a class="el" href="list_8h-source.html#l00022">list_head::next</a>.</p>

<p>Referenciado por <a class="el" href="hash__table_8h-source.html#l00171">hash_table_insert()</a>, <a class="el" href="hash__table_8h-source.html#l00189">hash_table_insert_safe()</a> e <a class="el" href="list_8h-source.html#l00115">list_move()</a>.</p>

</div>
</div><p>
<a class="anchor" name="588bec046f1e9797b33a5c5ab250f447"></a><!-- doxytag: member="list.h::list_add_tail" ref="588bec046f1e9797b33a5c5ab250f447" args="(struct list_head *new, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_add_tail           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>new</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_add_tail - add a new entry : new entry to be added : list head to add it before 
<p>
Insert a new entry before the specified head. This is useful for implementing queues. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00070">70</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00040">__list_add()</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

<p>Referenciado por <a class="el" href="list_8h-source.html#l00126">list_move_tail()</a>.</p>

</div>
</div><p>
<a class="anchor" name="b1708206f0f7e0a56550b35372203ba5"></a><!-- doxytag: member="list.h::list_del" ref="b1708206f0f7e0a56550b35372203ba5" args="(struct list_head *entry)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_del           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>entry</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_del - deletes entry from list. 
<p>
: the element to delete from the list. Note: list_empty on entry does not return true after this, the entry is in an undefined state. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00093">93</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00082">__list_del()</a>, <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

</div>
</div><p>
<a class="anchor" name="e1cde0f50b85945cfff23be4fc1586f4"></a><!-- doxytag: member="list.h::list_del_init" ref="e1cde0f50b85945cfff23be4fc1586f4" args="(struct list_head *entry)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_del_init           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>entry</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_del_init - deletes entry from list and reinitialize it. 
<p>
: the element to delete from the list. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00104">104</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00082">__list_del()</a>, <a class="el" href="list_8h-source.html#l00030">INIT_LIST_HEAD</a>, <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

<p>Referenciado por <a class="el" href="hash__table_8h-source.html#l00288">hash_table_del_key()</a> e <a class="el" href="hash__table_8h-source.html#l00300">hash_table_del_key_safe()</a>.</p>

</div>
</div><p>
<a class="anchor" name="0fce12be81e8f2677b3a272fee1652ac"></a><!-- doxytag: member="list.h::list_empty" ref="0fce12be81e8f2677b3a272fee1652ac" args="(struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int list_empty           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_empty - tests whether a list is empty : the list to test. 
<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00137">137</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00022">list_head::next</a>.</p>

<p>Referenciado por <a class="el" href="list_8h-source.html#l00160">list_splice()</a> e <a class="el" href="list_8h-source.html#l00173">list_splice_init()</a>.</p>

</div>
</div><p>
<a class="anchor" name="ee8df43e41969c2272acfd6ed6e75d4c"></a><!-- doxytag: member="list.h::list_move" ref="ee8df43e41969c2272acfd6ed6e75d4c" args="(struct list_head *list, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_move           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_move - delete from one list and add as another's head : the entry to move : the head that will precede our entry 
<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00115">115</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00082">__list_del()</a>, <a class="el" href="list_8h-source.html#l00057">list_add()</a>, <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

</div>
</div><p>
<a class="anchor" name="1c5ac6a6b04a03f5782e818daacf96e9"></a><!-- doxytag: member="list.h::list_move_tail" ref="1c5ac6a6b04a03f5782e818daacf96e9" args="(struct list_head *list, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_move_tail           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_move_tail - delete from one list and add as another's tail : the entry to move : the head that will follow our entry 
<p>

<p>Definido na linha <a class="el" href="list_8h-source.html#l00126">126</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00082">__list_del()</a>, <a class="el" href="list_8h-source.html#l00070">list_add_tail()</a>, <a class="el" href="list_8h-source.html#l00022">list_head::next</a> e <a class="el" href="list_8h-source.html#l00022">list_head::prev</a>.</p>

</div>
</div><p>
<a class="anchor" name="2c4399cfbde5e5d5eddf2e13c97bd5d5"></a><!-- doxytag: member="list.h::list_splice" ref="2c4399cfbde5e5d5eddf2e13c97bd5d5" args="(struct list_head *list, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_splice           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_splice - join two lists : the new list to add. 
<p>
: the place to add it in the first list. 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00160">160</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00142">__list_splice()</a> e <a class="el" href="list_8h-source.html#l00137">list_empty()</a>.</p>

</div>
</div><p>
<a class="anchor" name="948b15519bb72e3d42f3e56975580d30"></a><!-- doxytag: member="list.h::list_splice_init" ref="948b15519bb72e3d42f3e56975580d30" args="(struct list_head *list, struct list_head *head)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void list_splice_init           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structlist__head.html">list_head</a> *&nbsp;</td>
          <td class="paramname"> <em>head</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
list_splice_init - join two lists and reinitialise the emptied list. 
<p>
: the new list to add. : the place to add it in the first list.<p>
The list at  is reinitialised 
<p>Definido na linha <a class="el" href="list_8h-source.html#l00173">173</a> do ficheiro <a class="el" href="list_8h-source.html">list.h</a>.</p>

<p>Referências <a class="el" href="list_8h-source.html#l00142">__list_splice()</a>, <a class="el" href="list_8h-source.html#l00030">INIT_LIST_HEAD</a> e <a class="el" href="list_8h-source.html#l00137">list_empty()</a>.</p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Gerado em Wed Sep 10 22:06:27 2008 para L2LB por&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>
